package com.nondo.rdp.finance.service.course;

import java.util.Map;

import com.nondo.rdp.auth.endpoint.model.Page;
import com.nondo.rdp.finance.domain.course.Course;
import com.nondo.rdp.finance.domain.course.CourseBuy;
import com.nondo.rdp.finance.model.RequestPayBean;

public interface CourseBuyService {
	/**
	 * 保存课程
	 *
	 * @param courseBuy
	 */
	CourseBuy save(CourseBuy courseBuy);

	/**
	 * 根据主键ID删除课程
	 *
	 * @param id
	 */
	void delete(Long id);

	/**
	 * 根据主键更新课程
	 *
	 * @param courseBuy
	 */
	void update(CourseBuy courseBuy);
	
	/**
	 * 根据主键ID查询课程
	 *
	 * @param id
	 * @return
	 */
	CourseBuy findOne(Long id);

	/**
	 * 分页查询课程列表
	 *
	 * @param page
	 * @param courseBuy
	 * @return
	 */
	Page<CourseBuy> findAll(Page<CourseBuy> page, Course course);

	/**
	 * 查询用户是否购买过此课程
	 * @param cid
	 * @param uid
	 * @return
	 */
	int getOne(Long cid, Long uid);

	/**
	 * 购买或下单
	 * 
	 * @param courseBuy
	 * @param payBean 
	 * @return {"retCode": "SUCCESS","resCode": "SUCCESS", "error": "error msg."}
	 */
	@SuppressWarnings("rawtypes")
	Map order(CourseBuy courseBuy, RequestPayBean payBean);

	/**
	 * 根据订单号号查询
	 * @param mchOrderNo
	 * @return
	 */
	CourseBuy findByOrderNo(String mchOrderNo);
	
}
